.class public Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;
.super Lorg/jboss/netty/handler/codec/replay/ReplayingDecoder;
.source "WebSocket08FrameDecoder.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$1;,
        Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;
    }
.end annotation

.annotation system Ldalvik/annotation/Signature;
    value = {
        "Lorg/jboss/netty/handler/codec/replay/ReplayingDecoder",
        "<",
        "Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;",
        ">;"
    }
.end annotation


# static fields
.field private static final OPCODE_BINARY:B = 0x2t

.field private static final OPCODE_CLOSE:B = 0x8t

.field private static final OPCODE_CONT:B = 0x0t

.field private static final OPCODE_PING:B = 0x9t

.field private static final OPCODE_PONG:B = 0xat

.field private static final OPCODE_TEXT:B = 0x1t

.field private static final logger:Lorg/jboss/netty/logging/InternalLogger;


# instance fields
.field private final allowExtensions:Z

.field private fragmentedFramesCount:I

.field private fragmentedFramesText:Lorg/jboss/netty/handler/codec/http/websocketx/UTF8Output;

.field private frameFinalFlag:Z

.field private frameOpcode:I

.field private framePayload:Lorg/jboss/netty/buffer/ChannelBuffer;

.field private framePayloadBytesRead:I

.field private framePayloadLength:J

.field private frameRsv:I

.field private final maskedPayload:Z

.field private maskingKey:Lorg/jboss/netty/buffer/ChannelBuffer;

.field private receivedClosingHandshake:Z


# direct methods
.method static constructor <clinit>()V
    .locals 1

    .prologue
    .line 58
    const-class v0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;

    invoke-static {v0}, Lorg/jboss/netty/logging/InternalLoggerFactory;->getInstance(Ljava/lang/Class;)Lorg/jboss/netty/logging/InternalLogger;

    move-result-object v0

    sput-object v0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->logger:Lorg/jboss/netty/logging/InternalLogger;

    return-void
.end method

.method public constructor <init>(ZZ)V
    .locals 1
    .parameter "maskedPayload"
    .parameter "allowExtensions"

    .prologue
    .line 96
    sget-object v0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;->FRAME_START:Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;

    invoke-direct {p0, v0}, Lorg/jboss/netty/handler/codec/replay/ReplayingDecoder;-><init>(Ljava/lang/Enum;)V

    .line 97
    iput-boolean p1, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->maskedPayload:Z

    .line 98
    iput-boolean p2, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->allowExtensions:Z

    .line 99
    return-void
.end method

.method private checkUTF8String(Lorg/jboss/netty/channel/Channel;[B)V
    .locals 2
    .parameter "channel"
    .parameter "bytes"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lorg/jboss/netty/handler/codec/frame/CorruptedFrameException;
        }
    .end annotation

    .prologue
    .line 370
    :try_start_0
    iget-object v1, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->fragmentedFramesText:Lorg/jboss/netty/handler/codec/http/websocketx/UTF8Output;

    if-nez v1, :cond_0

    .line 371
    new-instance v1, Lorg/jboss/netty/handler/codec/http/websocketx/UTF8Output;

    invoke-direct {v1, p2}, Lorg/jboss/netty/handler/codec/http/websocketx/UTF8Output;-><init>([B)V

    iput-object v1, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->fragmentedFramesText:Lorg/jboss/netty/handler/codec/http/websocketx/UTF8Output;

    .line 378
    :goto_0
    return-void

    .line 373
    :cond_0
    iget-object v1, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->fragmentedFramesText:Lorg/jboss/netty/handler/codec/http/websocketx/UTF8Output;

    invoke-virtual {v1, p2}, Lorg/jboss/netty/handler/codec/http/websocketx/UTF8Output;->write([B)V
    :try_end_0
    .catch Lorg/jboss/netty/handler/codec/http/websocketx/UTF8Exception; {:try_start_0 .. :try_end_0} :catch_0

    goto :goto_0

    .line 375
    :catch_0
    move-exception v0

    .line 376
    .local v0, ex:Lorg/jboss/netty/handler/codec/http/websocketx/UTF8Exception;
    const-string v1, "invalid UTF-8 bytes"

    invoke-direct {p0, p1, v1}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->protocolViolation(Lorg/jboss/netty/channel/Channel;Ljava/lang/String;)V

    goto :goto_0
.end method

.method private protocolViolation(Lorg/jboss/netty/channel/Channel;Ljava/lang/String;)V
    .locals 2
    .parameter "channel"
    .parameter "reason"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lorg/jboss/netty/handler/codec/frame/CorruptedFrameException;
        }
    .end annotation

    .prologue
    .line 345
    sget-object v0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;->CORRUPT:Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;

    invoke-virtual {p0, v0}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->checkpoint(Ljava/lang/Enum;)V

    .line 346
    invoke-interface {p1}, Lorg/jboss/netty/channel/Channel;->isConnected()Z

    move-result v0

    if-eqz v0, :cond_0

    .line 347
    sget-object v0, Lorg/jboss/netty/buffer/ChannelBuffers;->EMPTY_BUFFER:Lorg/jboss/netty/buffer/ChannelBuffer;

    invoke-interface {p1, v0}, Lorg/jboss/netty/channel/Channel;->write(Ljava/lang/Object;)Lorg/jboss/netty/channel/ChannelFuture;

    move-result-object v0

    sget-object v1, Lorg/jboss/netty/channel/ChannelFutureListener;->CLOSE:Lorg/jboss/netty/channel/ChannelFutureListener;

    invoke-interface {v0, v1}, Lorg/jboss/netty/channel/ChannelFuture;->addListener(Lorg/jboss/netty/channel/ChannelFutureListener;)V

    .line 348
    invoke-interface {p1}, Lorg/jboss/netty/channel/Channel;->close()Lorg/jboss/netty/channel/ChannelFuture;

    move-result-object v0

    invoke-interface {v0}, Lorg/jboss/netty/channel/ChannelFuture;->awaitUninterruptibly()Lorg/jboss/netty/channel/ChannelFuture;

    .line 350
    :cond_0
    new-instance v0, Lorg/jboss/netty/handler/codec/frame/CorruptedFrameException;

    invoke-direct {v0, p2}, Lorg/jboss/netty/handler/codec/frame/CorruptedFrameException;-><init>(Ljava/lang/String;)V

    throw v0
.end method

.method private toFrameLength(J)I
    .locals 3
    .parameter "l"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Lorg/jboss/netty/handler/codec/frame/TooLongFrameException;
        }
    .end annotation

    .prologue
    .line 354
    const-wide/32 v0, 0x7fffffff

    cmp-long v0, p1, v0

    if-lez v0, :cond_0

    .line 355
    new-instance v0, Lorg/jboss/netty/handler/codec/frame/TooLongFrameException;

    new-instance v1, Ljava/lang/StringBuilder;

    invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V

    const-string v2, "Length:"

    invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1, p1, p2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v1

    invoke-direct {v0, v1}, Lorg/jboss/netty/handler/codec/frame/TooLongFrameException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 357
    :cond_0
    long-to-int v0, p1

    return v0
.end method

.method private unmask(Lorg/jboss/netty/buffer/ChannelBuffer;)V
    .locals 5
    .parameter "frame"

    .prologue
    .line 338
    invoke-interface {p1}, Lorg/jboss/netty/buffer/ChannelBuffer;->array()[B

    move-result-object v0

    .line 339
    .local v0, bytes:[B
    const/4 v1, 0x0

    .local v1, i:I
    :goto_0
    array-length v2, v0

    if-ge v1, v2, :cond_0

    .line 340
    invoke-interface {p1, v1}, Lorg/jboss/netty/buffer/ChannelBuffer;->getByte(I)B

    move-result v2

    iget-object v3, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->maskingKey:Lorg/jboss/netty/buffer/ChannelBuffer;

    rem-int/lit8 v4, v1, 0x4

    invoke-interface {v3, v4}, Lorg/jboss/netty/buffer/ChannelBuffer;->getByte(I)B

    move-result v3

    xor-int/2addr v2, v3

    invoke-interface {p1, v1, v2}, Lorg/jboss/netty/buffer/ChannelBuffer;->setByte(II)V

    .line 339
    add-int/lit8 v1, v1, 0x1

    goto :goto_0

    .line 342
    :cond_0
    return-void
.end method


# virtual methods
.method protected bridge synthetic decode(Lorg/jboss/netty/channel/ChannelHandlerContext;Lorg/jboss/netty/channel/Channel;Lorg/jboss/netty/buffer/ChannelBuffer;Ljava/lang/Enum;)Ljava/lang/Object;
    .locals 1
    .parameter "x0"
    .parameter "x1"
    .parameter "x2"
    .parameter "x3"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .prologue
    .line 56
    check-cast p4, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;

    .end local p4
    invoke-virtual {p0, p1, p2, p3, p4}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->decode(Lorg/jboss/netty/channel/ChannelHandlerContext;Lorg/jboss/netty/channel/Channel;Lorg/jboss/netty/buffer/ChannelBuffer;Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;)Ljava/lang/Object;

    move-result-object v0

    return-object v0
.end method

.method protected decode(Lorg/jboss/netty/channel/ChannelHandlerContext;Lorg/jboss/netty/channel/Channel;Lorg/jboss/netty/buffer/ChannelBuffer;Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;)Ljava/lang/Object;
    .locals 11
    .parameter "ctx"
    .parameter "channel"
    .parameter "buffer"
    .parameter "state"
    .annotation system Ldalvik/annotation/Throws;
        value = {
            Ljava/lang/Exception;
        }
    .end annotation

    .prologue
    .line 106
    iget-boolean v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->receivedClosingHandshake:Z

    if-eqz v7, :cond_0

    .line 107
    invoke-virtual {p0}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->actualReadableBytes()I

    move-result v7

    invoke-interface {p3, v7}, Lorg/jboss/netty/buffer/ChannelBuffer;->skipBytes(I)V

    .line 108
    const/4 v7, 0x0

    .line 331
    :goto_0
    return-object v7

    .line 111
    :cond_0
    sget-object v7, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$1;->$SwitchMap$org$jboss$netty$handler$codec$http$websocketx$WebSocket08FrameDecoder$State:[I

    invoke-virtual {p4}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;->ordinal()I

    move-result v8

    aget v7, v7, v8

    packed-switch v7, :pswitch_data_0

    .line 333
    new-instance v7, Ljava/lang/Error;

    const-string v8, "Shouldn\'t reach here."

    invoke-direct {v7, v8}, Ljava/lang/Error;-><init>(Ljava/lang/String;)V

    throw v7

    .line 113
    :pswitch_0
    const/4 v7, 0x0

    iput v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayloadBytesRead:I

    .line 114
    const-wide/16 v7, -0x1

    iput-wide v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayloadLength:J

    .line 115
    const/4 v7, 0x0

    iput-object v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayload:Lorg/jboss/netty/buffer/ChannelBuffer;

    .line 118
    invoke-interface {p3}, Lorg/jboss/netty/buffer/ChannelBuffer;->readByte()B

    move-result v1

    .line 119
    .local v1, b:B
    and-int/lit16 v7, v1, 0x80

    if-eqz v7, :cond_2

    const/4 v7, 0x1

    :goto_1
    iput-boolean v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameFinalFlag:Z

    .line 120
    and-int/lit8 v7, v1, 0x70

    shr-int/lit8 v7, v7, 0x4

    iput v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameRsv:I

    .line 121
    and-int/lit8 v7, v1, 0xf

    iput v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    .line 123
    sget-object v7, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->logger:Lorg/jboss/netty/logging/InternalLogger;

    invoke-interface {v7}, Lorg/jboss/netty/logging/InternalLogger;->isDebugEnabled()Z

    move-result v7

    if-eqz v7, :cond_1

    .line 124
    sget-object v7, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->logger:Lorg/jboss/netty/logging/InternalLogger;

    new-instance v8, Ljava/lang/StringBuilder;

    invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V

    const-string v9, "Decoding WebSocket Frame opCode="

    invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v8

    iget v9, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v8

    invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v8

    invoke-interface {v7, v8}, Lorg/jboss/netty/logging/InternalLogger;->debug(Ljava/lang/String;)V

    .line 128
    :cond_1
    invoke-interface {p3}, Lorg/jboss/netty/buffer/ChannelBuffer;->readByte()B

    move-result v1

    .line 129
    and-int/lit16 v7, v1, 0x80

    if-eqz v7, :cond_3

    const/4 v2, 0x1

    .line 130
    .local v2, frameMasked:Z
    :goto_2
    and-int/lit8 v3, v1, 0x7f

    .line 132
    .local v3, framePayloadLen1:I
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameRsv:I

    if-eqz v7, :cond_4

    iget-boolean v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->allowExtensions:Z

    if-nez v7, :cond_4

    .line 133
    new-instance v7, Ljava/lang/StringBuilder;

    invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V

    const-string v8, "RSV != 0 and no extension negotiated, RSV:"

    invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v7

    iget v8, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameRsv:I

    invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v7

    invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v7

    invoke-direct {p0, p2, v7}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->protocolViolation(Lorg/jboss/netty/channel/Channel;Ljava/lang/String;)V

    .line 134
    const/4 v7, 0x0

    goto/16 :goto_0

    .line 119
    .end local v2           #frameMasked:Z
    .end local v3           #framePayloadLen1:I
    :cond_2
    const/4 v7, 0x0

    goto :goto_1

    .line 129
    :cond_3
    const/4 v2, 0x0

    goto :goto_2

    .line 137
    .restart local v2       #frameMasked:Z
    .restart local v3       #framePayloadLen1:I
    :cond_4
    iget-boolean v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->maskedPayload:Z

    if-eqz v7, :cond_5

    if-nez v2, :cond_5

    .line 138
    const-string v7, "unmasked client to server frame"

    invoke-direct {p0, p2, v7}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->protocolViolation(Lorg/jboss/netty/channel/Channel;Ljava/lang/String;)V

    .line 139
    const/4 v7, 0x0

    goto/16 :goto_0

    .line 141
    :cond_5
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    const/4 v8, 0x7

    if-le v7, v8, :cond_9

    .line 144
    iget-boolean v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameFinalFlag:Z

    if-nez v7, :cond_6

    .line 145
    const-string v7, "fragmented control frame"

    invoke-direct {p0, p2, v7}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->protocolViolation(Lorg/jboss/netty/channel/Channel;Ljava/lang/String;)V

    .line 146
    const/4 v7, 0x0

    goto/16 :goto_0

    .line 150
    :cond_6
    const/16 v7, 0x7d

    if-le v3, v7, :cond_7

    .line 151
    const-string v7, "control frame with payload length > 125 octets"

    invoke-direct {p0, p2, v7}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->protocolViolation(Lorg/jboss/netty/channel/Channel;Ljava/lang/String;)V

    .line 152
    const/4 v7, 0x0

    goto/16 :goto_0

    .line 156
    :cond_7
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    const/16 v8, 0x8

    if-eq v7, v8, :cond_8

    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    const/16 v8, 0x9

    if-eq v7, v8, :cond_8

    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    const/16 v8, 0xa

    if-eq v7, v8, :cond_8

    .line 157
    new-instance v7, Ljava/lang/StringBuilder;

    invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V

    const-string v8, "control frame using reserved opcode "

    invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v7

    iget v8, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v7

    invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v7

    invoke-direct {p0, p2, v7}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->protocolViolation(Lorg/jboss/netty/channel/Channel;Ljava/lang/String;)V

    .line 158
    const/4 v7, 0x0

    goto/16 :goto_0

    .line 164
    :cond_8
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    const/16 v8, 0x8

    if-ne v7, v8, :cond_c

    const/4 v7, 0x1

    if-ne v3, v7, :cond_c

    .line 165
    const-string v7, "received close control frame with payload len 1"

    invoke-direct {p0, p2, v7}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->protocolViolation(Lorg/jboss/netty/channel/Channel;Ljava/lang/String;)V

    .line 166
    const/4 v7, 0x0

    goto/16 :goto_0

    .line 170
    :cond_9
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    if-eqz v7, :cond_a

    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    const/4 v8, 0x1

    if-eq v7, v8, :cond_a

    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    const/4 v8, 0x2

    if-eq v7, v8, :cond_a

    .line 171
    new-instance v7, Ljava/lang/StringBuilder;

    invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V

    const-string v8, "data frame using reserved opcode "

    invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v7

    iget v8, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v7

    invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v7

    invoke-direct {p0, p2, v7}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->protocolViolation(Lorg/jboss/netty/channel/Channel;Ljava/lang/String;)V

    .line 172
    const/4 v7, 0x0

    goto/16 :goto_0

    .line 176
    :cond_a
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->fragmentedFramesCount:I

    if-nez v7, :cond_b

    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    if-nez v7, :cond_b

    .line 177
    const-string v7, "received continuation data frame outside fragmented message"

    invoke-direct {p0, p2, v7}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->protocolViolation(Lorg/jboss/netty/channel/Channel;Ljava/lang/String;)V

    .line 178
    const/4 v7, 0x0

    goto/16 :goto_0

    .line 182
    :cond_b
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->fragmentedFramesCount:I

    if-eqz v7, :cond_c

    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    if-eqz v7, :cond_c

    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    const/16 v8, 0x9

    if-eq v7, v8, :cond_c

    .line 183
    const-string v7, "received non-continuation data frame while inside fragmented message"

    invoke-direct {p0, p2, v7}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->protocolViolation(Lorg/jboss/netty/channel/Channel;Ljava/lang/String;)V

    .line 184
    const/4 v7, 0x0

    goto/16 :goto_0

    .line 189
    :cond_c
    const/16 v7, 0x7e

    if-ne v3, v7, :cond_d

    .line 190
    invoke-interface {p3}, Lorg/jboss/netty/buffer/ChannelBuffer;->readUnsignedShort()I

    move-result v7

    int-to-long v7, v7

    iput-wide v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayloadLength:J

    .line 191
    iget-wide v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayloadLength:J

    const-wide/16 v9, 0x7e

    cmp-long v7, v7, v9

    if-gez v7, :cond_f

    .line 192
    const-string v7, "invalid data frame length (not using minimal length encoding)"

    invoke-direct {p0, p2, v7}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->protocolViolation(Lorg/jboss/netty/channel/Channel;Ljava/lang/String;)V

    .line 193
    const/4 v7, 0x0

    goto/16 :goto_0

    .line 195
    :cond_d
    const/16 v7, 0x7f

    if-ne v3, v7, :cond_e

    .line 196
    invoke-interface {p3}, Lorg/jboss/netty/buffer/ChannelBuffer;->readLong()J

    move-result-wide v7

    iput-wide v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayloadLength:J

    .line 200
    iget-wide v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayloadLength:J

    const-wide/32 v9, 0x10000

    cmp-long v7, v7, v9

    if-gez v7, :cond_f

    .line 201
    const-string v7, "invalid data frame length (not using minimal length encoding)"

    invoke-direct {p0, p2, v7}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->protocolViolation(Lorg/jboss/netty/channel/Channel;Ljava/lang/String;)V

    .line 202
    const/4 v7, 0x0

    goto/16 :goto_0

    .line 205
    :cond_e
    int-to-long v7, v3

    iput-wide v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayloadLength:J

    .line 208
    :cond_f
    sget-object v7, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->logger:Lorg/jboss/netty/logging/InternalLogger;

    invoke-interface {v7}, Lorg/jboss/netty/logging/InternalLogger;->isDebugEnabled()Z

    move-result v7

    if-eqz v7, :cond_10

    .line 209
    sget-object v7, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->logger:Lorg/jboss/netty/logging/InternalLogger;

    new-instance v8, Ljava/lang/StringBuilder;

    invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V

    const-string v9, "Decoding WebSocket Frame length="

    invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v8

    iget-wide v9, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayloadLength:J

    invoke-virtual {v8, v9, v10}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    move-result-object v8

    invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v8

    invoke-interface {v7, v8}, Lorg/jboss/netty/logging/InternalLogger;->debug(Ljava/lang/String;)V

    .line 212
    :cond_10
    sget-object v7, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;->MASKING_KEY:Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;

    invoke-virtual {p0, v7}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->checkpoint(Ljava/lang/Enum;)V

    .line 214
    .end local v1           #b:B
    .end local v2           #frameMasked:Z
    .end local v3           #framePayloadLen1:I
    :pswitch_1
    iget-boolean v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->maskedPayload:Z

    if-eqz v7, :cond_11

    .line 215
    const/4 v7, 0x4

    invoke-interface {p3, v7}, Lorg/jboss/netty/buffer/ChannelBuffer;->readBytes(I)Lorg/jboss/netty/buffer/ChannelBuffer;

    move-result-object v7

    iput-object v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->maskingKey:Lorg/jboss/netty/buffer/ChannelBuffer;

    .line 217
    :cond_11
    sget-object v7, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;->PAYLOAD:Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;

    invoke-virtual {p0, v7}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->checkpoint(Ljava/lang/Enum;)V

    .line 221
    :pswitch_2
    invoke-virtual {p0}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->actualReadableBytes()I

    move-result v5

    .line 222
    .local v5, rbytes:I
    const/4 v4, 0x0

    .line 224
    .local v4, payloadBuffer:Lorg/jboss/netty/buffer/ChannelBuffer;
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayloadBytesRead:I

    add-int v6, v7, v5

    .line 228
    .local v6, willHaveReadByteCount:I
    int-to-long v7, v6

    iget-wide v9, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayloadLength:J

    cmp-long v7, v7, v9

    if-nez v7, :cond_14

    .line 230
    invoke-interface {p3, v5}, Lorg/jboss/netty/buffer/ChannelBuffer;->readBytes(I)Lorg/jboss/netty/buffer/ChannelBuffer;

    move-result-object v4

    .line 251
    :cond_12
    :goto_3
    sget-object v7, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;->FRAME_START:Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder$State;

    invoke-virtual {p0, v7}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->checkpoint(Ljava/lang/Enum;)V

    .line 254
    iget-object v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayload:Lorg/jboss/netty/buffer/ChannelBuffer;

    if-nez v7, :cond_17

    .line 255
    iput-object v4, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayload:Lorg/jboss/netty/buffer/ChannelBuffer;

    .line 261
    :goto_4
    iget-boolean v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->maskedPayload:Z

    if-eqz v7, :cond_13

    .line 262
    iget-object v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayload:Lorg/jboss/netty/buffer/ChannelBuffer;

    invoke-direct {p0, v7}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->unmask(Lorg/jboss/netty/buffer/ChannelBuffer;)V

    .line 267
    :cond_13
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    const/16 v8, 0x9

    if-ne v7, v8, :cond_18

    .line 268
    new-instance v7, Lorg/jboss/netty/handler/codec/http/websocketx/PingWebSocketFrame;

    iget-boolean v8, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameFinalFlag:Z

    iget v9, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameRsv:I

    iget-object v10, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayload:Lorg/jboss/netty/buffer/ChannelBuffer;

    invoke-direct {v7, v8, v9, v10}, Lorg/jboss/netty/handler/codec/http/websocketx/PingWebSocketFrame;-><init>(ZILorg/jboss/netty/buffer/ChannelBuffer;)V

    goto/16 :goto_0

    .line 231
    :cond_14
    int-to-long v7, v6

    iget-wide v9, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayloadLength:J

    cmp-long v7, v7, v9

    if-gez v7, :cond_16

    .line 234
    invoke-interface {p3, v5}, Lorg/jboss/netty/buffer/ChannelBuffer;->readBytes(I)Lorg/jboss/netty/buffer/ChannelBuffer;

    move-result-object v4

    .line 235
    iget-object v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayload:Lorg/jboss/netty/buffer/ChannelBuffer;

    if-nez v7, :cond_15

    .line 236
    invoke-interface {p2}, Lorg/jboss/netty/channel/Channel;->getConfig()Lorg/jboss/netty/channel/ChannelConfig;

    move-result-object v7

    invoke-interface {v7}, Lorg/jboss/netty/channel/ChannelConfig;->getBufferFactory()Lorg/jboss/netty/buffer/ChannelBufferFactory;

    move-result-object v7

    iget-wide v8, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayloadLength:J

    invoke-direct {p0, v8, v9}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->toFrameLength(J)I

    move-result v8

    invoke-interface {v7, v8}, Lorg/jboss/netty/buffer/ChannelBufferFactory;->getBuffer(I)Lorg/jboss/netty/buffer/ChannelBuffer;

    move-result-object v7

    iput-object v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayload:Lorg/jboss/netty/buffer/ChannelBuffer;

    .line 238
    :cond_15
    iget-object v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayload:Lorg/jboss/netty/buffer/ChannelBuffer;

    invoke-interface {v7, v4}, Lorg/jboss/netty/buffer/ChannelBuffer;->writeBytes(Lorg/jboss/netty/buffer/ChannelBuffer;)V

    .line 239
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayloadBytesRead:I

    add-int/2addr v7, v5

    iput v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayloadBytesRead:I

    .line 242
    const/4 v7, 0x0

    goto/16 :goto_0

    .line 243
    :cond_16
    int-to-long v7, v6

    iget-wide v9, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayloadLength:J

    cmp-long v7, v7, v9

    if-lez v7, :cond_12

    .line 246
    iget-wide v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayloadLength:J

    iget v9, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayloadBytesRead:I

    int-to-long v9, v9

    sub-long/2addr v7, v9

    invoke-direct {p0, v7, v8}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->toFrameLength(J)I

    move-result v7

    invoke-interface {p3, v7}, Lorg/jboss/netty/buffer/ChannelBuffer;->readBytes(I)Lorg/jboss/netty/buffer/ChannelBuffer;

    move-result-object v4

    goto :goto_3

    .line 257
    :cond_17
    iget-object v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayload:Lorg/jboss/netty/buffer/ChannelBuffer;

    invoke-interface {v7, v4}, Lorg/jboss/netty/buffer/ChannelBuffer;->writeBytes(Lorg/jboss/netty/buffer/ChannelBuffer;)V

    goto :goto_4

    .line 269
    :cond_18
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    const/16 v8, 0xa

    if-ne v7, v8, :cond_19

    .line 270
    new-instance v7, Lorg/jboss/netty/handler/codec/http/websocketx/PongWebSocketFrame;

    iget-boolean v8, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameFinalFlag:Z

    iget v9, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameRsv:I

    iget-object v10, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayload:Lorg/jboss/netty/buffer/ChannelBuffer;

    invoke-direct {v7, v8, v9, v10}, Lorg/jboss/netty/handler/codec/http/websocketx/PongWebSocketFrame;-><init>(ZILorg/jboss/netty/buffer/ChannelBuffer;)V

    goto/16 :goto_0

    .line 271
    :cond_19
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    const/16 v8, 0x8

    if-ne v7, v8, :cond_1a

    .line 272
    const/4 v7, 0x1

    iput-boolean v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->receivedClosingHandshake:Z

    .line 273
    new-instance v7, Lorg/jboss/netty/handler/codec/http/websocketx/CloseWebSocketFrame;

    iget-boolean v8, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameFinalFlag:Z

    iget v9, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameRsv:I

    invoke-direct {v7, v8, v9}, Lorg/jboss/netty/handler/codec/http/websocketx/CloseWebSocketFrame;-><init>(ZI)V

    goto/16 :goto_0

    .line 278
    :cond_1a
    const/4 v0, 0x0

    .line 279
    .local v0, aggregatedText:Ljava/lang/String;
    iget-boolean v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameFinalFlag:Z

    if-eqz v7, :cond_1d

    .line 282
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    const/16 v8, 0x9

    if-eq v7, v8, :cond_1c

    .line 283
    const/4 v7, 0x0

    iput v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->fragmentedFramesCount:I

    .line 286
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    const/4 v8, 0x1

    if-eq v7, v8, :cond_1b

    iget-object v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->fragmentedFramesText:Lorg/jboss/netty/handler/codec/http/websocketx/UTF8Output;

    if-eqz v7, :cond_1c

    .line 288
    :cond_1b
    iget-object v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayload:Lorg/jboss/netty/buffer/ChannelBuffer;

    invoke-interface {v7}, Lorg/jboss/netty/buffer/ChannelBuffer;->array()[B

    move-result-object v7

    invoke-direct {p0, p2, v7}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->checkUTF8String(Lorg/jboss/netty/channel/Channel;[B)V

    .line 292
    iget-object v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->fragmentedFramesText:Lorg/jboss/netty/handler/codec/http/websocketx/UTF8Output;

    invoke-virtual {v7}, Lorg/jboss/netty/handler/codec/http/websocketx/UTF8Output;->toString()Ljava/lang/String;

    move-result-object v0

    .line 294
    const/4 v7, 0x0

    iput-object v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->fragmentedFramesText:Lorg/jboss/netty/handler/codec/http/websocketx/UTF8Output;

    .line 318
    :cond_1c
    :goto_5
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    const/4 v8, 0x1

    if-ne v7, v8, :cond_20

    .line 319
    new-instance v7, Lorg/jboss/netty/handler/codec/http/websocketx/TextWebSocketFrame;

    iget-boolean v8, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameFinalFlag:Z

    iget v9, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameRsv:I

    iget-object v10, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayload:Lorg/jboss/netty/buffer/ChannelBuffer;

    invoke-direct {v7, v8, v9, v10}, Lorg/jboss/netty/handler/codec/http/websocketx/TextWebSocketFrame;-><init>(ZILorg/jboss/netty/buffer/ChannelBuffer;)V

    goto/16 :goto_0

    .line 300
    :cond_1d
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->fragmentedFramesCount:I

    if-nez v7, :cond_1f

    .line 302
    const/4 v7, 0x0

    iput-object v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->fragmentedFramesText:Lorg/jboss/netty/handler/codec/http/websocketx/UTF8Output;

    .line 303
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    const/4 v8, 0x1

    if-ne v7, v8, :cond_1e

    .line 304
    iget-object v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayload:Lorg/jboss/netty/buffer/ChannelBuffer;

    invoke-interface {v7}, Lorg/jboss/netty/buffer/ChannelBuffer;->array()[B

    move-result-object v7

    invoke-direct {p0, p2, v7}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->checkUTF8String(Lorg/jboss/netty/channel/Channel;[B)V

    .line 314
    :cond_1e
    :goto_6
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->fragmentedFramesCount:I

    add-int/lit8 v7, v7, 0x1

    iput v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->fragmentedFramesCount:I

    goto :goto_5

    .line 308
    :cond_1f
    iget-object v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->fragmentedFramesText:Lorg/jboss/netty/handler/codec/http/websocketx/UTF8Output;

    if-eqz v7, :cond_1e

    .line 309
    iget-object v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayload:Lorg/jboss/netty/buffer/ChannelBuffer;

    invoke-interface {v7}, Lorg/jboss/netty/buffer/ChannelBuffer;->array()[B

    move-result-object v7

    invoke-direct {p0, p2, v7}, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->checkUTF8String(Lorg/jboss/netty/channel/Channel;[B)V

    goto :goto_6

    .line 320
    :cond_20
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    const/4 v8, 0x2

    if-ne v7, v8, :cond_21

    .line 321
    new-instance v7, Lorg/jboss/netty/handler/codec/http/websocketx/BinaryWebSocketFrame;

    iget-boolean v8, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameFinalFlag:Z

    iget v9, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameRsv:I

    iget-object v10, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayload:Lorg/jboss/netty/buffer/ChannelBuffer;

    invoke-direct {v7, v8, v9, v10}, Lorg/jboss/netty/handler/codec/http/websocketx/BinaryWebSocketFrame;-><init>(ZILorg/jboss/netty/buffer/ChannelBuffer;)V

    goto/16 :goto_0

    .line 322
    :cond_21
    iget v7, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    if-nez v7, :cond_22

    .line 323
    new-instance v7, Lorg/jboss/netty/handler/codec/http/websocketx/ContinuationWebSocketFrame;

    iget-boolean v8, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameFinalFlag:Z

    iget v9, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameRsv:I

    iget-object v10, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->framePayload:Lorg/jboss/netty/buffer/ChannelBuffer;

    invoke-direct {v7, v8, v9, v10, v0}, Lorg/jboss/netty/handler/codec/http/websocketx/ContinuationWebSocketFrame;-><init>(ZILorg/jboss/netty/buffer/ChannelBuffer;Ljava/lang/String;)V

    goto/16 :goto_0

    .line 325
    :cond_22
    new-instance v7, Ljava/lang/UnsupportedOperationException;

    new-instance v8, Ljava/lang/StringBuilder;

    invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V

    const-string v9, "Cannot decode web socket frame with opcode: "

    invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    move-result-object v8

    iget v9, p0, Lorg/jboss/netty/handler/codec/http/websocketx/WebSocket08FrameDecoder;->frameOpcode:I

    invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;

    move-result-object v8

    invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v8

    invoke-direct {v7, v8}, Ljava/lang/UnsupportedOperationException;-><init>(Ljava/lang/String;)V

    throw v7

    .line 330
    .end local v0           #aggregatedText:Ljava/lang/String;
    .end local v4           #payloadBuffer:Lorg/jboss/netty/buffer/ChannelBuffer;
    .end local v5           #rbytes:I
    .end local v6           #willHaveReadByteCount:I
    :pswitch_3
    invoke-interface {p3}, Lorg/jboss/netty/buffer/ChannelBuffer;->readByte()B

    .line 331
    const/4 v7, 0x0

    goto/16 :goto_0

    .line 111
    :pswitch_data_0
    .packed-switch 0x1
        :pswitch_0
        :pswitch_1
        :pswitch_2
        :pswitch_3
    .end packed-switch
.end method
